﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace mBook.Models
{
    public class EpubEbook 
    {
        #region Attributes
        private Dictionary<string, string> items;
        private List<string> spine;
        private string imageCover, rootFolder, fileName;

        protected string title, identifier, language, creator, publisher, description, coverage, source, rights;
        protected List<string> date, subject;
        #endregion

        #region Properties
        public string FileName
        {
            get { return fileName; }
            set { fileName = value; }
        }

        public string RootFolder
        {
            get { return rootFolder; }
            set { rootFolder = value; }
        }

        public string Title
        {
            get { return this.title; }
            set { this.title = value; }
        }

        public string Identifier
        {
            get { return this.identifier; }
            set { this.identifier = value; }
        }

        public string Language
        {
            get { return this.language; }
            set { this.language = value; }
        }

        public string Creator
        {
            get { return this.creator; }
            set { this.creator = value; }
        }

        public string Publisher
        {
            get { return this.publisher; }
            set { this.publisher = value; }
        }

        public string Description
        {
            get { return this.description; }
            set { this.description = value; }
        }

        public string Coverage
        {
            get { return this.coverage; }
            set { this.coverage = value; }
        }

        public string Source
        {
            get { return this.source; }
            set { this.source = value; }
        }

        public string Rights
        {
            get { return this.rights; }
            set { this.rights = value; }
        }

        public List<string> Date
        {
            get 
            {
                if (date == null)
                    date = new List<string>();
                return this.date; 
            }
            set { this.date = value; }
        }

        public List<string> Subject
        {
            get 
            {
                if (subject == null)
                    subject = new List<string>();
                return this.subject; 
            }
            set { this.subject = value; }
        }

        public Dictionary<string, string> Items
        {
            get { return items; }
            set { items = value; }
        }

        public List<string> Spine
        {
            get { return spine; }
            set { spine = value; }
        }

        private List<ItemTableContent> tableContents;

        public List<ItemTableContent> TableContents
        {
            get { return tableContents; }
            set { tableContents = value; }
        }

        //private List<Bookmark> bookmarks;

        //public List<Bookmark> Bookmarks
        //{
        //    get { return bookmarks; }
        //    set { bookmarks = value; }
        //}

        String currentPageReading = "";

        public String CurrentPageReading
        {
            get { return currentPageReading; }
            set { currentPageReading = value; }
        }

        public string ImageCover
        {
            get { return imageCover; }
            set { imageCover = value; }
        }
        #endregion
    }
}
